package com.zyb.warehouse.service;

import com.zyb.warehouse.common.Result;
import com.zyb.warehouse.dto.AssignRoleDto;
import com.zyb.warehouse.dto.Page;
import com.zyb.warehouse.entity.Role;
import com.zyb.warehouse.entity.User;

import java.util.List;

/**
 * Description:用户管理业务层接口
 */
public interface UserService {
    /**
     * 分页查询用户
     *
     * @param page
     * @param user
     * @return
     */
    Page queryPageUser(Page page, User user);

    /**
     * 添加用户
     *
     * @param user
     * @param token
     * @return
     */
    Result addUser(User user, String token);

    /**
     * 用户启用或者禁用
     *
     * @param user
     * @param token
     * @return
     */
    Result userStartOrStop(User user, String token);

    /**
     * 根据用户ID查询用户对应的角色
     *
     * @param userId
     * @return
     */
    List<Role> queryUserRoleByUserId(Integer userId);

    /**
     * 给用户分配角色
     *
     * @param assignRoleDto
     */
    void userAssignRole(AssignRoleDto assignRoleDto);

    /**
     * 修改用户
     *
     * @param user
     * @param token
     * @return
     */
    Result modifyUser(User user, String token);

    /**
     * 删除用户
     *
     * @param userIds
     * @return
     */
    Result removeUser(List<Integer> userIds);

    /**
     * 重置密码(123456)
     *
     * @param userId
     * @return
     */
    Result restPassword(Integer userId, String token);
}
